<?
/**
 * <b>Hli_TrackingStatus Class</b>
 * Published 12/09/2011 15:58:19
 *
 * @author Lars Sorhus (lars@saucecode.com.au)
 * @copyright sauceCode Pty Ltd.
 * @version 2.0.5.105.
 * @internal It's not recommended at all to modify this code.
 */
class Hli_TrackingStatus extends Hli_Serializer{
	public $data=array();

   /**
    * Constructor
    */
	public function  __construct($TrackingStatusRaw){
		parent::__construct();
		$this->setTrackingStatus($TrackingStatusRaw);
	}

	/**
    * Sets the raw tracking status value.
    *
	 * @method setTrackingStatus
	 * @param array
	 * @return void
	 */
	public function setTrackingStatus($TrackingStatusRaw){
		if(is_array($TrackingStatusRaw)&&count(array_keys($TrackingStatusRaw))>0){
			$this->setStatusCode($TrackingStatusRaw["StatusCode"]);
			$this->setDateTime($TrackingStatusRaw["DateTime"]);
			$this->setTimestamp(@strtotime($TrackingStatusRaw["DateTime"]));
			$this->setDescription($TrackingStatusRaw["Description"]);
		}
	}

	/**
    * Gets the status code.
    *
	 * @method getStatusCode
	 * @return TrackingCode_{StatusCode}
	 */
	public function getStatusCode(){
		return($this->data["StatusCode"]);
	}
	/**
    * Sets the status code.
    *
	 * @method setStatusCode
	 * @param TrackingCode_{StatusCode}
	 * @return void
	 */
	public function setStatusCode($value){
		$this->data["StatusCode"]=$value;
	}

	/**
    * Gets the date time of the tracking log (where the item is at).
    *
	 * @method getDateTime
	 * @return string
	 */
	public function getDateTime(){
		return($this->data["DateTime"]);
	}
	/**
    * Sets the date time of the tracking log (where the item is at).
    *
	 * @method setDateTime
	 * @param string
	 * @return void
	 */
	public function setDateTime($value){
		$this->data["DateTime"]=$value;
	}

	/**
    * Gets the unix timestamp for the DateTime of the tracking object.
    *
	 * @method getTimestamp
	 * @return int
	 */
	public function getTimestamp(){
		return($this->data["Timestamp"]);
	}
	/**
    * Sets the unix timestamp for the DateTime of the tracking object.
    *
	 * @method setTimestamp
	 * @param int
	 * @return void
	 */
	public function setTimestamp($value){
		$this->data["Timestamp"]=$value;
	}

	/**
    * Gets the tracking description.
    *
	 * @method getDescription
	 * @return string
	 */
	public function getDescription(){
		return($this->data["Description"]);
	}
	/**
    * Sets the tracking description.
    *
	 * @method setDescription
	 * @param string
	 * @return void
	 */
	public function setDescription($value){
		$this->data["Description"]=$value;
	}
}
?>
